//
//  AFHTTPSessionManager+MFAPMNetMonitor.h
//  MFAPMManager
//
//  Created by zhang liyu on 2019/7/12.
//

#import <AFNetworking/AFNetworking.h>

NS_ASSUME_NONNULL_BEGIN

/**
 网络监听对AFHTTPSessionManager上传下载请求progress的处理类
 */
@interface AFHTTPSessionManager (MFAPMNetMonitor)

#pragma mark - Swizzle Actions

/**
 交换manager内部带有progress方法
 */
+ (void)mfapm_swizzleRequestProgressActions;

#pragma mark - Progress Block Dictionary Actions

/**
 根据传入的key获取上传progress的block,获取后删除存储的block
 
 @param key 上传progress的block对应的key，为对应的url
 @return 获取到的block，可能为空
 */
+ (nullable void (^)(NSProgress *))mfapm_uploadProgressBKForKey:(nullable NSString *)key;

/**
 根据传入的key获取下载progress的block,获取后删除存储的block
 
 @param key 下载progress的block对应的key，为对应的url
 @return 获取到的block，可能为空
 */
+ (nullable void (^)(NSProgress *))mfapm_downloadProgressBKForKey:(nullable NSString *)key;

@end

NS_ASSUME_NONNULL_END
